aboutsummaryrefslogtreecommitdiffstats
path: root/src/app/groups/[groupId]/expenses/actions.ts
blob: 31bb2e7f763ff3e85a5ca43a472f41b6c02be05d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
'use server'
import { createExpense, deleteExpense, updateExpense } from '@/lib/api'
import { expenseFormSchema } from '@/lib/schemas'
import { revalidatePath } from 'next/cache'

export async function createExpenseAction(groupId: string, values: unknown) {
  'use server'
  const expenseFormValues = expenseFormSchema.parse(values)
  await createExpense(expenseFormValues, groupId)
  revalidatePath(`/groups/${groupId}`, 'layout')
}

export async function updateExpenseAction(
  groupId: string,
  expenseId: string,
  values: unknown,
) {
  'use server'
  const expenseFormValues = expenseFormSchema.parse(values)
  await updateExpense(groupId, expenseId, expenseFormValues)
  revalidatePath(`/groups/${groupId}`, 'layout')
}

export async function deleteExpenseAction(groupId: string, expenseId: string) {
  'use server'
  await deleteExpense(expenseId)
  revalidatePath(`/groups/${groupId}`, 'layout')
}